#ifndef _MOD_RINGBUFFER_H
#define _MOD_RINGBUFFER_H

#include "main.h"

/*
 * 初始化环形缓冲区
 * 环形缓冲区这里可以是malloc申请的内存,也可以是Flash存储介质
 * */
void initRingbuffer(void);

/*
 * function:向缓冲区中写入数据
 * param:@buffer 写入的数据指针
 *       @addLen 写入的数据长度
 * return:-1:写入长度过大
 *        -2:缓冲区没有初始化
 * */
int writeRingbuffer(uint8_t* buffer,uint32_t addLen);


/*
 * function:从缓冲区内取出数据
 * param   :@buffer:接受读取数据的buffer
 *          @len:将要读取的数据的长度
 * return  :-1:没有初始化
 *          >0:实际读取的长度
 * */
int readRingbuffer(uint8_t* buffer,uint32_t len);

/*
 * function:获取已使用缓冲区的长度
 * return  :已使用的buffer长度
 * */
uint32_t getRingbufferValidLen(void);


/*
 * function:释放环形缓冲区
 * */
void releaseRingbuffer(void);


#endif 